In [1]:
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
import numpy as np
from IPython.display import display, Math, Latex
import pylab
import itertools
import plot_methods
import optimization_methods
%matplotlib inline
In [2]:
my_function = lambda x, y, z: 16*x**2 + 15*y**2 + 2*z**2 + 0.018*x*y + x-z
In [3]:
result = optimization_methods.conjucate_gradients_method(func=my_function, params=[1,1,1], eps=1e-5)
number of iteration: 2, current point: [0.85829467 0.8710351  0.98693561], function value: 25.00014761750249
number of iteration: 3, current point: [0.73936753 0.76242238 0.97543366], function value: 19.142970052238997
number of iteration: 4, current point: [0.61210657 0.64567003 0.96235253], function value: 13.75725083075886
number of iteration: 5, current point: [0.49107816 0.53391098 0.94881398], function value: 9.481917630168477
number of iteration: 6, current point: [0.38446223 0.4345862  0.93550097], function value: 6.4002496263855875
number of iteration: 7, current point: [0.29499534 0.35027142 0.92270945], function value: 4.309638272371935
number of iteration: 8, current point: [0.22211989 0.28058937 0.91049414], function value: 2.9410986032008353
number of iteration: 9, current point: [0.16378866 0.22381775 0.89879357], function value: 2.061958143117276
number of iteration: 10, current point: [0.11754347 0.17785023 0.88750365], function value: 1.5012655947190643
number of iteration: 11, current point: [0.08103279 0.14065632 0.87650999], function value: 1.1430915352087714
number of iteration: 12, current point: [0.05220786 0.11045456 0.8656955 ], function value: 0.9120872628826248
number of iteration: 13, current point: [0.02936346 0.08574757 0.85493468], function value: 0.7603858011688941
number of iteration: 14, current point: [0.01111485 0.06530083 0.84408067], function value: 0.6579312111951282
number of iteration: 15, current point: [-0.00364517  0.04810448  0.83294769], function value: 0.5859308957403999
number of iteration: 16, current point: [-0.01578957  0.03333616  0.82129031], function value: 0.5326046516227889
number of iteration: 17, current point: [-0.02599308  0.0203319   0.80878144], function value: 0.49048184805392037
number of iteration: 18, current point: [-0.03475928  0.00856754  0.79499196], function value: 0.4547001908037849
number of iteration: 19, current point: [-0.04243915 -0.0023493   0.77937674], function value: 0.4219422044905049
number of iteration: 20, current point: [-0.04924255 -0.01267692  0.76127521], function value: 0.38978118276236984
number of iteration: 21, current point: [-0.05524439 -0.02252752  0.73993992], function value: 0.35630368223260056
number of iteration: 22, current point: [-0.06038939 -0.03184787  0.71461458], function value: 0.31994300498295425
number of iteration: 23, current point: [-0.06450364 -0.04040153  0.68468621], function value: 0.2795032378287674
number of iteration: 24, current point: [-0.06732659 -0.04777149  0.64992401], function value: 0.23436738009333513
number of iteration: 25, current point: [-0.06857813 -0.05341171  0.6107728 ], function value: 0.18484134759547388
number of iteration: 26, current point: [-0.06806424 -0.05677164  0.56858869], function value: 0.13247194635196624
number of iteration: 27, current point: [-0.06579558 -0.0574844   0.52563055], function value: 0.08004867690133366
number of iteration: 28, current point: [-0.06205925 -0.05554824  0.48465551], function value: 0.031034933194112435
number of iteration: 29, current point: [-0.05738202 -0.05139028  0.4481884 ], function value: -0.011474110081026057
number of iteration: 30, current point: [-0.05238378 -0.04574914  0.41781982], function value: -0.045713942467867474
number of iteration: 31, current point: [-0.04760143 -0.03943783  0.39392706], function value: -0.07155316844354936
number of iteration: 32, current point: [-0.04338051 -0.03312866  0.37590219], function value: -0.09007939741130605
number of iteration: 33, current point: [-0.03986664 -0.02725607  0.36263161], function value: -0.10290233994506387
number of iteration: 34, current point: [-0.03706016 -0.02203056  0.35292154], function value: -0.11160430674152574
number of iteration: 35, current point: [-0.0348825  -0.01750389  0.34573658], function value: -0.1174761133273251
number of iteration: 36, current point: [-0.03322635 -0.01363606  0.34027468], function value: -0.12146618180334917
number of iteration: 37, current point: [-0.03198465 -0.01034407  0.33595207], function value: -0.12422989420093467
number of iteration: 38, current point: [-0.03106415 -0.0075315   0.33235561], function value: -0.12620448876151044
number of iteration: 39, current point: [-0.03038979 -0.00510465  0.32919269], function value: -0.1276765433311715
number of iteration: 40, current point: [-0.02990483 -0.00298076  0.32624991], function value: -0.1288330735160783
number of iteration: 41, current point: [-0.02956894 -0.00109232  0.32336284], function value: -0.12979709450614518
number of iteration: 42, current point: [-0.02935563  0.00061036  0.32039593], function value: -0.13065114091020735
number of iteration: 43, current point: [-0.02924944  0.00215727  0.31723161], function value: -0.131452112419133
number of iteration: 44, current point: [-0.02924282  0.00355707  0.31376788], function value: -0.13223993698588637
number of iteration: 45, current point: [-0.02933265  0.00479629  0.30992474], function value: -0.13304169740377617
number of iteration: 46, current point: [-0.02951611  0.00584067  0.30565939], function value: -0.13387236421403986
number of iteration: 47, current point: [-0.02978607  0.00664079  0.30098753], function value: -0.13473331354662005
number of iteration: 48, current point: [-0.03012682  0.00714388  0.29600389], function value: -0.1356104487528983
number of iteration: 49, current point: [-0.03051179  0.00731171  0.29088881], function value: -0.13647459047055283
number of iteration: 50, current point: [-0.03090538  0.00713956  0.28588727], function value: -0.13728667949331522
number of iteration: 51, current point: [-0.03126954  0.00666716  0.28125711], function value: -0.13800796664797355
number of iteration: 52, current point: [-0.03157282  0.00597356  0.2772037 ], function value: -0.13861139289472107
number of iteration: 53, current point: [-0.03179752  0.00515666  0.27383241], function value: -0.13908832045016592
number of iteration: 54, current point: [-0.03194121  0.00430806  0.27114142], function value: -0.13944752290190507
number of iteration: 55, current point: [-0.03201302  0.0034957   0.26905054], function value: -0.13970855415217381
number of iteration: 56, current point: [-0.03202777  0.0027591   0.26744301], function value: -0.13989420508845932
number of iteration: 57, current point: [-0.03200097  0.00211391  0.26619937], function value: -0.14002532609685125
number of iteration: 58, current point: [-0.03194587  0.00155987  0.26521594], function value: -0.140118601386316
number of iteration: 59, current point: [-0.0318725   0.00108817  0.26441042], function value: -0.14018634177250938
number of iteration: 60, current point: [-0.03178768  0.00068661  0.26372038], function value: -0.1402371980551447
number of iteration: 61, current point: [-0.03169562  0.00034286  0.26309898], function value: -0.1402770887319142
number of iteration: 62, current point: [-3.15987013e-02  4.62485158e-05  2.62510529e-01], function value: -0.14031002205610846
number of iteration: 63, current point: [-3.14982206e-02 -2.11285661e-04  2.61926984e-01], function value: -0.1403387188569678
number of iteration: 64, current point: [-0.03139509 -0.00043471  0.26132569], function value: -0.14036504024989044
number of iteration: 65, current point: [-0.0312905  -0.00062577  0.26068864], function value: -0.14039025355090354
number of iteration: 66, current point: [-0.03118652 -0.00078312  0.26000312], function value: -0.14041517203343543
number of iteration: 67, current point: [-0.0310865  -0.00090297  0.25926375], function value: -0.1404402024481849
number of iteration: 68, current point: [-0.03099518 -0.00098031  0.25847523], function value: -0.14046533997408955
number of iteration: 69, current point: [-0.03091822 -0.00101086  0.25765452], function value: -0.14049016525812427
number of iteration: 70, current point: [-0.03086117 -0.00099351  0.25683058], function value: -0.14051390950756182
number of iteration: 71, current point: [-0.0308279  -0.00093218  0.25604004], function value: -0.14053563350255072
number of iteration: 72, current point: [-0.03081932 -0.00083626  0.2553189 ], function value: -0.14055449687592428
number of iteration: 73, current point: [-0.0308329  -0.00071885  0.25469343], function value: -0.1405700096220482
number of iteration: 74, current point: [-0.03086356 -0.00059357  0.25417462], function value: -0.14058214106034658
number of iteration: 75, current point: [-0.0309052  -0.00047157  0.25375843], function value: -0.140591248277603
number of iteration: 76, current point: [-0.03095228 -0.00036004  0.25343064], function value: -0.14059789822005064
number of iteration: 77, current point: [-0.03100063 -0.0002623   0.25317285], function value: -0.14060269272956052
number of iteration: 78, current point: [-3.10476412e-02 -1.78810374e-04  2.52966975e-01], function value: -0.14060615940621857
number of iteration: 79, current point: [-3.10919778e-02 -1.08424878e-04  2.52797509e-01], function value: -0.14060871132740313
number of iteration: 80, current point: [-3.11332064e-02 -4.92915454e-05  2.52652119e-01], function value: -0.14061065021389246
number of iteration: 81, current point: [-3.11713995e-02  5.07832563e-07  2.52521285e-01], function value: -0.14061218767583497
number of iteration: 82, current point: [-3.12068395e-02  4.26170713e-05  2.52397678e-01], function value: -0.14061346916648462
number of iteration: 83, current point: [-3.12397957e-02  7.82369140e-05  2.52275579e-01], function value: -0.14061459399681614
number of iteration: 84, current point: [-3.12703603e-02  1.08062977e-04  2.52150508e-01], function value: -0.14061562965474536
number of iteration: 85, current point: [-3.12983358e-02  1.32294796e-04  2.52019143e-01], function value: -0.1406166207455293
number of iteration: 86, current point: [-3.13231784e-02  1.50711356e-04  2.51879495e-01], function value: -0.14061759357863407
number of iteration: 87, current point: [-3.13440232e-02  1.62828853e-04  2.51731322e-01], function value: -0.14061855777319687
number of iteration: 88, current point: [-3.13598251e-02  1.68154774e-04  2.51576558e-01], function value: -0.14061950672597812
number of iteration: 89, current point: [-3.13696304e-02  1.66514605e-04  2.51419478e-01], function value: -0.14062041929659683
number of iteration: 90, current point: [-3.13729280e-02  1.58357064e-04  2.51266218e-01], function value: -0.1406212648771965
number of iteration: 91, current point: [-3.13699388e-02  1.44886571e-04  2.51123509e-01], function value: -0.1406220122181108
number of iteration: 92, current point: [-3.13616766e-02  1.27906891e-04  2.50996983e-01], function value: -0.14062263930605595
number of iteration: 93, current point: [-3.13497097e-02  1.09413867e-04  2.50889778e-01], function value: -0.14062313968881823
number of iteration: 94, current point: [-3.13357395e-02  9.11394974e-05  2.50802138e-01], function value: -0.14062352234092057
number of iteration: 95, current point: [-3.13212157e-02  7.42659625e-05  2.50732014e-01], function value: -0.14062380630286275
number of iteration: 96, current point: [-3.13071399e-02  5.93856298e-05  2.50676156e-01], function value: -0.14062401395315996
number of iteration: 97, current point: [-3.12940631e-02  4.66321440e-05  2.50631083e-01], function value: -0.14062416605309658
number of iteration: 98, current point: [-3.12821925e-02  3.58630494e-05  2.50593667e-01], function value: -0.1406242794390746
number of iteration: 99, current point: [-3.12715229e-02  2.68152963e-05  2.50561342e-01], function value: -0.1406243666867666
number of iteration: 100, current point: [-3.12619485e-02  1.92092954e-05  2.50532095e-01], function value: -0.140624436740949
number of iteration: 101, current point: [-3.12533429e-02  1.28078521e-05  2.50504365e-01], function value: -0.14062449579826963
number of iteration: 102, current point: [-3.12456130e-02  7.44431262e-06  2.50476946e-01], function value: -0.14062454809271807
number of iteration: 103, current point: [-3.12387308e-02  3.03140133e-06  2.50448925e-01], function value: -0.1406245964673835
number of iteration: 104, current point: [-3.12327498e-02 -4.43482118e-07  2.50419677e-01], function value: -0.14062464272850195
number of iteration: 105, current point: [-3.12278023e-02 -2.93578660e-06  2.50388916e-01], function value: -0.14062468782536236
number of iteration: 106, current point: [-3.12240729e-02 -4.37587094e-06  2.50356771e-01], function value: -0.140624731926798
number of iteration: 107, current point: [-3.12217460e-02 -4.71496696e-06  2.50323848e-01], function value: -0.1406247744895449
number of iteration: 108, current point: [-3.12209314e-02 -3.97612607e-06  2.50291193e-01], function value: -0.1406248144224637
number of iteration: 109, current point: [-3.12215949e-02 -2.29056558e-06  2.50260113e-01], function value: -0.14062485040723943
number of iteration: 110, current point: [-3.12235280e-02  1.02917936e-07  2.50231863e-01], function value: -0.14062488132447426
number of iteration: 111, current point: [-3.12263829e-02  2.90279689e-06  2.50207321e-01], function value: -0.14062490661678126
number of iteration: 112, current point: [-3.12297589e-02  5.81434934e-06  2.50186802e-01], function value: -0.1406249264163574
number of iteration: 113, current point: [-3.12332964e-02  8.60876197e-06  2.50170086e-01], function value: -0.14062494140584486
number of iteration: 114, current point: [-3.12367355e-02  1.11478099e-05  2.50156604e-01], function value: -0.14062495253932333
number of iteration: 115, current point: [-3.12399265e-02  1.33751312e-05  2.50145652e-01], function value: -0.14062496078508868
number of iteration: 116, current point: [-3.12428086e-02  1.52906400e-05  2.50136547e-01], function value: -0.14062496697406723
Precision: 9.739986543785747e-06
In [7]:
plot_methods.plot_implicit(fn=my_function, bbox=(-0.01, 0.01))
/opt/conda/lib/python3.5/site-packages/matplotlib/contour.py:1243: UserWarning:

No contour levels were found within the data range.

In [ ]: